Для того, чтобы создать хранилище (папку внутри хранилища) необходимо получить указатель на родительское хранилище и еще раз вызвать CreateStorage(). Пример:
#include "stdafx.h"
#include "windows.h"
#include "ole2.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
OLECHAR filename[20];
wcscpy(filename,L"test.stg");
LPSTORAGE pIStorage=NULL;
HRESULT rez;
rez=StgOpenStorage(filename,NULL, STGM_READWRITE |
STGM_SHARE_EXCLUSIVE ,NULL,0,&pIStorage);
if (!FAILED(rez))
{
cout << "Ok open" << endl;
LPSTORAGE storage = 0;
HRESULT hresult = pIStorage->CreateStorage(L"MyFolder",
STGM_CREATE|STGM_READWRITE|STGM_DIRECT|
STGM_SHARE_EXCLUSIVE, 0, 0, &storage);
storage->Release();
pIStorage->Release();
}
else cout << "Error open" << endl;
return 0;
}
Смотрим в DocFile View:
